package com.dys.service;

import com.dys.proxy.DoSomething;

/**
 * @Author: 疾风
 * @ClassName: SomethingProxy
 * @Description: 代理类：需要和目标对象实现相同的接口
 * @CreateDate: 2024/10/21
 * @Version: v1.0.0
 */
public class SomethingProxy implements DoSomething {

    /**
     * 代理对象持有目标对象
     */
    private final DoSomething target;

    public SomethingProxy(DoSomething doSomething) {
        this.target = doSomething;
    }

    /**
     * 代理对象需要增强的方法
     * @return 返回结果
     */
    @Override
    public String doSomething() {
        System.out.println("目标对象执行之前......");
        // 让目标对象完成核心业务逻辑
        String bui = target.doSomething();
        System.out.println("目标对象执行之后......");
        return bui.toUpperCase();
    }
}
